//登录控制器
package com.wzy.wzyblog.web.admin;

import com.wzy.wzyblog.po.User;
import com.wzy.wzyblog.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import javax.servlet.http.HttpSession;

//定义全局跳转路径 后台管理为admin

@Controller
@RequestMapping("/admin")
public class LoginController {

    @Autowired
    private UserService userService;
//    跳转到登陆页面      没配置参数就为全局
    @GetMapping
    public String loginPage(){
        return "admin/login";
    }
//提交登录页面
    @PostMapping("/login")
    public String login(@RequestParam String username,
                        @RequestParam String password,
                        HttpSession session,
                        RedirectAttributes attributes){
//        调用service层方法
        User user = userService.checkUser(username, password);
//        用户名不为空 说明登录正确
        if(user !=null){
//            不要传递密码，不安全
            user.setPassword(null);
//      把查询的用户对象保存到session中      名     值
            session.setAttribute("user",user);
            return "admin/index";
//            用户名密码不正确时
        }else {
//            返回错误信息 重定向后带参数跳转  flash可隐藏参数
            attributes.addFlashAttribute("message","用户名密码错误");
//返回到登录的首页面       重定向（否则有路径问题）
            return "redirect:/admin";

        }

    }

//    注销用户
    @GetMapping("/logout")
    public String logout(HttpSession session){
//        删除session中的用户名
        session.removeAttribute("user");
//        返回登录页面
        return "redirect:/admin";
    }


}
